import api from "./api"
// 引入微信SDK
import cloudbase from "@cloudbase/js-sdk";
//初始化SDK实例
const wxApp = cloudbase.init({
  env: api.envid,
});


/**
 * 把base64转成blob
 * @param {base64} dataurl 
 * @returns 
 */
function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],

    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);

  while (n--) {

    u8arr[n] = bstr.charCodeAt(n);

  }

  return new File([u8arr], filename, {
    type: mime
  });


}


/**
 * 将blob转换为file
 * @param {base64} base64 
 * @returns 
 */

function blobToFile(base64) {
  let theBlob = dataURLtoBlob(base64)
  theBlob.lastModifiedDate = new Date();
  theBlob.name = 'blogimg';
  return theBlob;
}

/**
 * 传入base64格式文件上传图片
 * @param {string} coolName 保存图片的地址，数据库地址
 * @param {file} file 要上传的文件
 * @returns 
 */
async function uploadImage(coolName = 'myBlog', file) {
  // 等待上一张图片上传成功后再上传第二章图片
  let imgURL = await wxApp.uploadFile({
    // 云存储的路径
    cloudPath: `${coolName}/${new Date().getTime()}_${file.name}`,
    // 需要上传的文件，File 类型
    filePath: file,
  });
  // 获取到上传的图片id后根据id获取真实图片路径
  if (imgURL.fileID) {
    // 根据已上传的图片id获取下载地址
    return await wxApp
      .getTempFileURL({
        fileList: [imgURL.fileID],
      })
  }
}

export {
  uploadImage
}
